package hub

import (
	"github.com/gorilla/websocket"
	"github.com/streadway/amqp"
)

var conn *amqp.Connection

func Init() {
	c, err := amqp.Dial("amqp://guest:guest@localhost:5672/")
	if err != nil {
		panic(err.Error())
	}
	conn = c
}

type Message struct {
	Exchange string   // 交换机
	Kind     string   // 数据传递类型 fanout、direct
	Queue    string   // 队列名
	Routing  string   // routing 对direct和  ,相当于roomid
	Userid   string   // userid 用来标记连入mq的人
	Connect  *Connect // 因为是基于websocket的聊天服务，所以可能会包含很多链接
}

type Connect struct {
	Ws   *websocket.Conn // 所有的连接
	Send chan []byte     // 消息通道
}

type Hub struct {
	rooms      map[string]map[string]*Connect // 在线玩家池
	broadcast  chan Message                   // 传输群消息，房间消息,所有人
	forbid     chan Message                   // 回传连接 (系统提示、禁言之类的)
	private    chan Message                   // 私信 (两人房间)
	register   chan Message                   // 传输连接
	unregister chan Message                   // 断开连接
	online     chan Message                   // 人员变更广播
}
